function [S ci] = add_sub(A,B,ci)
    len = length(A);
    sub = ci;
    for i = len:-1:1,
        [S(i),ci] = bit_add(A(i),xor(B(i),sub),ci);
    end
end

function [s,co] = bit_add(a,b,ci)
    t = xor(a,b);
    s = xor(t,ci); 
    co = (a&&b)||(t&&ci);
end